import bb.cascades 1.0
// To use the MediaPlayer, we must include
// the multimedia library.
import bb.multimedia 1.0
 
Page {
    Container {
        id: mainContainer
        layout: StackLayout {
            orientation: LayoutOrientation.TopToBottom
        }
        topPadding: 50.0
        Label {
            id: titleLbl
            text: qsTr("SystemSound and MediaPlayer\n Sample App")
            multiline: true
            textStyle.fontSizeValue: 9.0
            textStyle.fontWeight: FontWeight.Bold
            textStyle.fontFamily: "Verdana"
            textStyle.color: Color.DarkBlue
            textStyle.textAlign: TextAlign.Center
            horizontalAlignment: HorizontalAlignment.Center
        }
        // Part 1 of the sample: Playing system sounds.
        Container {
            id: systemSoundsContainer
            layout: StackLayout {
                orientation: LayoutOrientation.TopToBottom
            }
            topMargin: 100.0
            horizontalAlignment: HorizontalAlignment.Center
            DropDown {
                id: soundSelectorDropdown
                title: "Sound: "
                maxWidth: 600.0
                Option {
                    text: qsTr("Battery Alarm")
                    value: SystemSound.BatteryAlarm
                    selected: true
                }
                Option {
                    text: qsTr("Browser Start")
                    value: SystemSound.BrowserStartEvent
                }
                Option {
                    text: qsTr("Camera Shutter")
                    value: SystemSound.CameraShutterEvent
                }
                Option {
                    text: qsTr("Device Tether")
                    value: SystemSound.DeviceTetherEvent
                }
                Option {
                    text: qsTr("General Notification")
                    value: SystemSound.GeneralNotification
                }
            } // soundSelectorDropdown
            Button {
                id: systemSoundPlayButton
                text: qsTr("Play Selected System Sound")
                minWidth: 600.0
                onClicked: {
                    systemSound.play();
                }
            } // systemSoundPlayButton
        } // systemSoundsContainer
        // Part 2 of the sample: Playing custom sound files.
        Container {
            id: customSoundsContainer
            layout: StackLayout {
                orientation: LayoutOrientation.LeftToRight
            }
            topMargin: 100.0
            Button {
                id: customSoundPlayButton1
                text: qsTr("Play Sound 1")
                layoutProperties: StackLayoutProperties {
                    spaceQuota: 1.0
                }
                
                onClicked: {
                    // Here we could have created a second MediaPlayer object to
                    // use to play our sound, but instead we programmatically
                    // changed the sourceUrl property of the current myPlayer
                    // MediaPlayer object, and re-used it to play our sounds.
                    myPlayer.setSourceUrl("asset:///hi.mp3")
                    myPlayer.play()
                }
            } // customSoundPlayButton1
            Button {
                id: customSoundPlayButton2
                text: qsTr("Play Sound 2")
                layoutProperties: StackLayoutProperties {
                    spaceQuota: 1.0
                }
                onClicked: {
                    // Same as above, here we also could have created a second
                    // MediaPlayer object to use to play our sound, but instead
                    // we programmatically changed the sourceUrl property of the
                    // current myPlayer MediaPlayer object, and re-used it to
                    // play our sounds.
                    myPlayer.setSourceUrl("http://123.30.133.183/test.mp3")
                    myPlayer.play()
                }
            } // customSoundPlayButton2
        } // customSoundsContainer
    } // mainContainer
 
    // The SystemSound and MediaPlayer objects are attached so
    // they can be used in our QML code to play sounds.
    attachedObjects: [       
        SystemSound {
            id: systemSound
            sound: soundSelectorDropdown.selectedValue
        },
        MediaPlayer {
            id: myPlayer
            // sourceUrl: < Set in the Button control's onClicked event handler. >
        }
    ] // Attached objects.
}